// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.1
// 	protoc        v3.20.0
// source: api/mesh/v1alpha1/mesh.proto

package v1alpha1

import (
	_ "github.com/kumahq/kuma/api/mesh"
	_ "github.com/kumahq/protoc-gen-kumadoc/proto"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	structpb "google.golang.org/protobuf/types/known/structpb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type CertificateAuthorityBackend_Mode int32

const (
	// A STRICT mode implies that the server validates the connection and
	// accepts only encrypted TLS traffic
	CertificateAuthorityBackend_STRICT CertificateAuthorityBackend_Mode = 0
	// A PERMISSIVE mode implies that the outbounds encrypt traffic the same way
	// it happens in strict mode, but inbounds accept both TLS and plaintext
	// traffic. This allows applications residing in the mesh to accept requests
	// from outside of the mesh.
	CertificateAuthorityBackend_PERMISSIVE CertificateAuthorityBackend_Mode = 1
)

// Enum value maps for CertificateAuthorityBackend_Mode.
var (
	CertificateAuthorityBackend_Mode_name = map[int32]string{
		0: "STRICT",
		1: "PERMISSIVE",
	}
	CertificateAuthorityBackend_Mode_value = map[string]int32{
		"STRICT":     0,
		"PERMISSIVE": 1,
	}
)

func (x CertificateAuthorityBackend_Mode) Enum() *CertificateAuthorityBackend_Mode {
	p := new(CertificateAuthorityBackend_Mode)
	*p = x
	return p
}

func (x CertificateAuthorityBackend_Mode) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CertificateAuthorityBackend_Mode) Descriptor() protoreflect.EnumDescriptor {
	return file_api_mesh_v1alpha1_mesh_proto_enumTypes[0].Descriptor()
}

func (CertificateAuthorityBackend_Mode) Type() protoreflect.EnumType {
	return &file_api_mesh_v1alpha1_mesh_proto_enumTypes[0]
}

func (x CertificateAuthorityBackend_Mode) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CertificateAuthorityBackend_Mode.Descriptor instead.
func (CertificateAuthorityBackend_Mode) EnumDescriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{1, 0}
}

// Mesh defines configuration of a single mesh.
type Mesh struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// mTLS settings.
	// +optional
	Mtls *Mesh_Mtls `protobuf:"bytes,1,opt,name=mtls,proto3" json:"mtls,omitempty"`
	// Tracing settings.
	// +optional
	Tracing *Tracing `protobuf:"bytes,2,opt,name=tracing,proto3" json:"tracing,omitempty"`
	// Logging settings.
	// +optional
	Logging *Logging `protobuf:"bytes,3,opt,name=logging,proto3" json:"logging,omitempty"`
	// Configuration for metrics collected and exposed by dataplanes.
	//
	// Settings defined here become defaults for every dataplane in a given Mesh.
	// Additionally, it is also possible to further customize this configuration
	// for each dataplane individually using Dataplane resource.
	// +optional
	Metrics *Metrics `protobuf:"bytes,4,opt,name=metrics,proto3" json:"metrics,omitempty"`
	// Networking settings of the mesh
	Networking *Networking `protobuf:"bytes,5,opt,name=networking,proto3" json:"networking,omitempty"`
	// Routing settings of the mesh
	Routing *Routing `protobuf:"bytes,6,opt,name=routing,proto3" json:"routing,omitempty"`
	// Constraints that applies to the mesh and its entities
	Constraints *Mesh_Constraints `protobuf:"bytes,7,opt,name=constraints,proto3" json:"constraints,omitempty"`
	// List of policies to skip creating by default when the mesh is created.
	// e.g. TrafficPermission, MeshRetry, etc. An '*' can be used to skip all
	// policies.
	SkipCreatingInitialPolicies []string `protobuf:"bytes,8,rep,name=skipCreatingInitialPolicies,proto3" json:"skipCreatingInitialPolicies,omitempty"`
}

func (x *Mesh) Reset() {
	*x = Mesh{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Mesh) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Mesh) ProtoMessage() {}

func (x *Mesh) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Mesh.ProtoReflect.Descriptor instead.
func (*Mesh) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{0}
}

func (x *Mesh) GetMtls() *Mesh_Mtls {
	if x != nil {
		return x.Mtls
	}
	return nil
}

func (x *Mesh) GetTracing() *Tracing {
	if x != nil {
		return x.Tracing
	}
	return nil
}

func (x *Mesh) GetLogging() *Logging {
	if x != nil {
		return x.Logging
	}
	return nil
}

func (x *Mesh) GetMetrics() *Metrics {
	if x != nil {
		return x.Metrics
	}
	return nil
}

func (x *Mesh) GetNetworking() *Networking {
	if x != nil {
		return x.Networking
	}
	return nil
}

func (x *Mesh) GetRouting() *Routing {
	if x != nil {
		return x.Routing
	}
	return nil
}

func (x *Mesh) GetConstraints() *Mesh_Constraints {
	if x != nil {
		return x.Constraints
	}
	return nil
}

func (x *Mesh) GetSkipCreatingInitialPolicies() []string {
	if x != nil {
		return x.SkipCreatingInitialPolicies
	}
	return nil
}

// CertificateAuthorityBackend defines Certificate Authority backend
type CertificateAuthorityBackend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Name of the backend
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Type of the backend. Has to be one of the loaded plugins (Kuma ships with
	// builtin and provided)
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	// Dataplane certificate settings
	DpCert *CertificateAuthorityBackend_DpCert `protobuf:"bytes,3,opt,name=dpCert,proto3" json:"dpCert,omitempty"`
	// Configuration of the backend
	Conf *structpb.Struct `protobuf:"bytes,4,opt,name=conf,proto3" json:"conf,omitempty"`
	// Mode defines the behaviour of inbound listeners with regard to traffic
	// encryption
	Mode      CertificateAuthorityBackend_Mode       `protobuf:"varint,5,opt,name=mode,proto3,enum=kuma.mesh.v1alpha1.CertificateAuthorityBackend_Mode" json:"mode,omitempty"`
	RootChain *CertificateAuthorityBackend_RootChain `protobuf:"bytes,6,opt,name=rootChain,proto3" json:"rootChain,omitempty"`
}

func (x *CertificateAuthorityBackend) Reset() {
	*x = CertificateAuthorityBackend{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CertificateAuthorityBackend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CertificateAuthorityBackend) ProtoMessage() {}

func (x *CertificateAuthorityBackend) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CertificateAuthorityBackend.ProtoReflect.Descriptor instead.
func (*CertificateAuthorityBackend) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{1}
}

func (x *CertificateAuthorityBackend) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *CertificateAuthorityBackend) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *CertificateAuthorityBackend) GetDpCert() *CertificateAuthorityBackend_DpCert {
	if x != nil {
		return x.DpCert
	}
	return nil
}

func (x *CertificateAuthorityBackend) GetConf() *structpb.Struct {
	if x != nil {
		return x.Conf
	}
	return nil
}

func (x *CertificateAuthorityBackend) GetMode() CertificateAuthorityBackend_Mode {
	if x != nil {
		return x.Mode
	}
	return CertificateAuthorityBackend_STRICT
}

func (x *CertificateAuthorityBackend) GetRootChain() *CertificateAuthorityBackend_RootChain {
	if x != nil {
		return x.RootChain
	}
	return nil
}

// Networking defines the networking configuration of the mesh
type Networking struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Outbound settings
	Outbound *Networking_Outbound `protobuf:"bytes,1,opt,name=outbound,proto3" json:"outbound,omitempty"`
}

func (x *Networking) Reset() {
	*x = Networking{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Networking) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Networking) ProtoMessage() {}

func (x *Networking) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Networking.ProtoReflect.Descriptor instead.
func (*Networking) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{2}
}

func (x *Networking) GetOutbound() *Networking_Outbound {
	if x != nil {
		return x.Outbound
	}
	return nil
}

// Tracing defines tracing configuration of the mesh.
type Tracing struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Name of the default backend
	DefaultBackend string `protobuf:"bytes,1,opt,name=defaultBackend,proto3" json:"defaultBackend,omitempty"`
	// List of available tracing backends
	Backends []*TracingBackend `protobuf:"bytes,2,rep,name=backends,proto3" json:"backends,omitempty"`
}

func (x *Tracing) Reset() {
	*x = Tracing{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Tracing) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Tracing) ProtoMessage() {}

func (x *Tracing) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Tracing.ProtoReflect.Descriptor instead.
func (*Tracing) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{3}
}

func (x *Tracing) GetDefaultBackend() string {
	if x != nil {
		return x.DefaultBackend
	}
	return ""
}

func (x *Tracing) GetBackends() []*TracingBackend {
	if x != nil {
		return x.Backends
	}
	return nil
}

// TracingBackend defines tracing backend available to mesh. Backends can be
// used in TrafficTrace rules.
type TracingBackend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Name of the backend, can be then used in Mesh.tracing.defaultBackend or in
	// TrafficTrace
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Percentage of traces that will be sent to the backend (range 0.0 - 100.0).
	// Empty value defaults to 100.0%
	Sampling *wrapperspb.DoubleValue `protobuf:"bytes,2,opt,name=sampling,proto3" json:"sampling,omitempty"`
	// Type of the backend (Kuma ships with 'zipkin')
	Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	// Configuration of the backend
	Conf *structpb.Struct `protobuf:"bytes,4,opt,name=conf,proto3" json:"conf,omitempty"`
}

func (x *TracingBackend) Reset() {
	*x = TracingBackend{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TracingBackend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TracingBackend) ProtoMessage() {}

func (x *TracingBackend) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TracingBackend.ProtoReflect.Descriptor instead.
func (*TracingBackend) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{4}
}

func (x *TracingBackend) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *TracingBackend) GetSampling() *wrapperspb.DoubleValue {
	if x != nil {
		return x.Sampling
	}
	return nil
}

func (x *TracingBackend) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *TracingBackend) GetConf() *structpb.Struct {
	if x != nil {
		return x.Conf
	}
	return nil
}

type DatadogTracingBackendConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Address of datadog collector.
	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	// Port of datadog collector
	Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	// Determines if datadog service name should be split based on traffic
	// direction and destination. For example, with `splitService: true` and a
	// `backend` service that communicates with a couple of databases, you would
	// get service names like `backend_INBOUND`, `backend_OUTBOUND_db1`, and
	// `backend_OUTBOUND_db2` in Datadog. Default: false
	SplitService bool `protobuf:"varint,3,opt,name=splitService,proto3" json:"splitService,omitempty"`
}

func (x *DatadogTracingBackendConfig) Reset() {
	*x = DatadogTracingBackendConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DatadogTracingBackendConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DatadogTracingBackendConfig) ProtoMessage() {}

func (x *DatadogTracingBackendConfig) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DatadogTracingBackendConfig.ProtoReflect.Descriptor instead.
func (*DatadogTracingBackendConfig) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{5}
}

func (x *DatadogTracingBackendConfig) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

func (x *DatadogTracingBackendConfig) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *DatadogTracingBackendConfig) GetSplitService() bool {
	if x != nil {
		return x.SplitService
	}
	return false
}

type ZipkinTracingBackendConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Address of Zipkin collector.
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// Generate 128bit traces. Default: false
	TraceId128Bit bool `protobuf:"varint,2,opt,name=traceId128bit,proto3" json:"traceId128bit,omitempty"`
	// Version of the API. values: httpJson, httpJsonV1, httpProto. Default:
	// httpJson see
	// https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/trace/v3/trace.proto#envoy-v3-api-enum-config-trace-v3-zipkinconfig-collectorendpointversion
	ApiVersion string `protobuf:"bytes,3,opt,name=apiVersion,proto3" json:"apiVersion,omitempty"`
	// Determines whether client and server spans will share the same span
	// context. Default: true.
	// https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/trace/v3/zipkin.proto#config-trace-v3-zipkinconfig
	SharedSpanContext *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=sharedSpanContext,proto3" json:"sharedSpanContext,omitempty"`
}

func (x *ZipkinTracingBackendConfig) Reset() {
	*x = ZipkinTracingBackendConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ZipkinTracingBackendConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ZipkinTracingBackendConfig) ProtoMessage() {}

func (x *ZipkinTracingBackendConfig) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ZipkinTracingBackendConfig.ProtoReflect.Descriptor instead.
func (*ZipkinTracingBackendConfig) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{6}
}

func (x *ZipkinTracingBackendConfig) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *ZipkinTracingBackendConfig) GetTraceId128Bit() bool {
	if x != nil {
		return x.TraceId128Bit
	}
	return false
}

func (x *ZipkinTracingBackendConfig) GetApiVersion() string {
	if x != nil {
		return x.ApiVersion
	}
	return ""
}

func (x *ZipkinTracingBackendConfig) GetSharedSpanContext() *wrapperspb.BoolValue {
	if x != nil {
		return x.SharedSpanContext
	}
	return nil
}

type Logging struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Name of the default backend
	DefaultBackend string `protobuf:"bytes,1,opt,name=defaultBackend,proto3" json:"defaultBackend,omitempty"`
	// List of available logging backends
	Backends []*LoggingBackend `protobuf:"bytes,2,rep,name=backends,proto3" json:"backends,omitempty"`
}

func (x *Logging) Reset() {
	*x = Logging{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Logging) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Logging) ProtoMessage() {}

func (x *Logging) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Logging.ProtoReflect.Descriptor instead.
func (*Logging) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{7}
}

func (x *Logging) GetDefaultBackend() string {
	if x != nil {
		return x.DefaultBackend
	}
	return ""
}

func (x *Logging) GetBackends() []*LoggingBackend {
	if x != nil {
		return x.Backends
	}
	return nil
}

// LoggingBackend defines logging backend available to mesh. Backends can be
// used in TrafficLog rules.
type LoggingBackend struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Name of the backend, can be then used in Mesh.logging.defaultBackend or in
	// TrafficLogging
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Format of access logs. Placeholders available on
	// https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log
	Format string `protobuf:"bytes,2,opt,name=format,proto3" json:"format,omitempty"`
	// Type of the backend (Kuma ships with 'tcp' and 'file')
	Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	// Configuration of the backend
	Conf *structpb.Struct `protobuf:"bytes,4,opt,name=conf,proto3" json:"conf,omitempty"`
}

func (x *LoggingBackend) Reset() {
	*x = LoggingBackend{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *LoggingBackend) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LoggingBackend) ProtoMessage() {}

func (x *LoggingBackend) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LoggingBackend.ProtoReflect.Descriptor instead.
func (*LoggingBackend) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{8}
}

func (x *LoggingBackend) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *LoggingBackend) GetFormat() string {
	if x != nil {
		return x.Format
	}
	return ""
}

func (x *LoggingBackend) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *LoggingBackend) GetConf() *structpb.Struct {
	if x != nil {
		return x.Conf
	}
	return nil
}

// FileLoggingBackendConfig defines configuration for file based access logs
type FileLoggingBackendConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Path to a file that logs will be written to
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
}

func (x *FileLoggingBackendConfig) Reset() {
	*x = FileLoggingBackendConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FileLoggingBackendConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FileLoggingBackendConfig) ProtoMessage() {}

func (x *FileLoggingBackendConfig) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FileLoggingBackendConfig.ProtoReflect.Descriptor instead.
func (*FileLoggingBackendConfig) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{9}
}

func (x *FileLoggingBackendConfig) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

// TcpLoggingBackendConfig defines configuration for TCP based access logs
type TcpLoggingBackendConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Address to TCP service that will receive logs
	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
}

func (x *TcpLoggingBackendConfig) Reset() {
	*x = TcpLoggingBackendConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TcpLoggingBackendConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TcpLoggingBackendConfig) ProtoMessage() {}

func (x *TcpLoggingBackendConfig) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TcpLoggingBackendConfig.ProtoReflect.Descriptor instead.
func (*TcpLoggingBackendConfig) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{10}
}

func (x *TcpLoggingBackendConfig) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

// Routing defines configuration for the routing in the mesh
type Routing struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Enable the Locality Aware Load Balancing
	LocalityAwareLoadBalancing bool `protobuf:"varint,1,opt,name=localityAwareLoadBalancing,proto3" json:"localityAwareLoadBalancing,omitempty"`
	// Enable routing traffic to services in other zone or external services
	// through ZoneEgress. Default: false
	ZoneEgress bool `protobuf:"varint,2,opt,name=zoneEgress,proto3" json:"zoneEgress,omitempty"`
}

func (x *Routing) Reset() {
	*x = Routing{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Routing) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Routing) ProtoMessage() {}

func (x *Routing) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Routing.ProtoReflect.Descriptor instead.
func (*Routing) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{11}
}

func (x *Routing) GetLocalityAwareLoadBalancing() bool {
	if x != nil {
		return x.LocalityAwareLoadBalancing
	}
	return false
}

func (x *Routing) GetZoneEgress() bool {
	if x != nil {
		return x.ZoneEgress
	}
	return false
}

// mTLS settings of a Mesh.
type Mesh_Mtls struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Name of the enabled backend
	EnabledBackend string `protobuf:"bytes,1,opt,name=enabledBackend,proto3" json:"enabledBackend,omitempty"`
	// List of available Certificate Authority backends
	Backends []*CertificateAuthorityBackend `protobuf:"bytes,2,rep,name=backends,proto3" json:"backends,omitempty"`
	// If enabled, skips CA validation.
	SkipValidation bool `protobuf:"varint,3,opt,name=skipValidation,proto3" json:"skipValidation,omitempty"`
}

func (x *Mesh_Mtls) Reset() {
	*x = Mesh_Mtls{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Mesh_Mtls) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Mesh_Mtls) ProtoMessage() {}

func (x *Mesh_Mtls) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Mesh_Mtls.ProtoReflect.Descriptor instead.
func (*Mesh_Mtls) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{0, 0}
}

func (x *Mesh_Mtls) GetEnabledBackend() string {
	if x != nil {
		return x.EnabledBackend
	}
	return ""
}

func (x *Mesh_Mtls) GetBackends() []*CertificateAuthorityBackend {
	if x != nil {
		return x.Backends
	}
	return nil
}

func (x *Mesh_Mtls) GetSkipValidation() bool {
	if x != nil {
		return x.SkipValidation
	}
	return false
}

// Constraints to apply to the mesh and its entities
type Mesh_Constraints struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// DataplaneProxyMembership defines a set of requirements for data plane
	// proxies to be a member of the mesh.
	DataplaneProxy *Mesh_DataplaneProxyConstraints `protobuf:"bytes,1,opt,name=dataplaneProxy,proto3" json:"dataplaneProxy,omitempty"`
}

func (x *Mesh_Constraints) Reset() {
	*x = Mesh_Constraints{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Mesh_Constraints) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Mesh_Constraints) ProtoMessage() {}

func (x *Mesh_Constraints) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Mesh_Constraints.ProtoReflect.Descriptor instead.
func (*Mesh_Constraints) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{0, 1}
}

func (x *Mesh_Constraints) GetDataplaneProxy() *Mesh_DataplaneProxyConstraints {
	if x != nil {
		return x.DataplaneProxy
	}
	return nil
}

type Mesh_DataplaneProxyConstraints struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Requirements defines a set of requirements that data plane proxies must
	// fulfill in order to join the mesh. A data plane proxy must fulfill at
	// least one requirement in order to join the mesh. Empty list of allowed
	// requirements means that any proxy that is not explicitly denied can join.
	Requirements []*Mesh_DataplaneProxyConstraints_Rules `protobuf:"bytes,1,rep,name=requirements,proto3" json:"requirements,omitempty"`
	// Restrictions defines a set of restrictions that data plane proxies cannot
	// fulfill in order to join the mesh. A data plane proxy cannot fulfill any
	// requirement in order to join the mesh.
	// Restrictions takes precedence over requirements.
	Restrictions []*Mesh_DataplaneProxyConstraints_Rules `protobuf:"bytes,2,rep,name=restrictions,proto3" json:"restrictions,omitempty"`
}

func (x *Mesh_DataplaneProxyConstraints) Reset() {
	*x = Mesh_DataplaneProxyConstraints{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Mesh_DataplaneProxyConstraints) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Mesh_DataplaneProxyConstraints) ProtoMessage() {}

func (x *Mesh_DataplaneProxyConstraints) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Mesh_DataplaneProxyConstraints.ProtoReflect.Descriptor instead.
func (*Mesh_DataplaneProxyConstraints) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{0, 2}
}

func (x *Mesh_DataplaneProxyConstraints) GetRequirements() []*Mesh_DataplaneProxyConstraints_Rules {
	if x != nil {
		return x.Requirements
	}
	return nil
}

func (x *Mesh_DataplaneProxyConstraints) GetRestrictions() []*Mesh_DataplaneProxyConstraints_Rules {
	if x != nil {
		return x.Restrictions
	}
	return nil
}

// Rules defines a set of rules for data plane proxies to be member of the
// mesh.
type Mesh_DataplaneProxyConstraints_Rules struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Tags defines set of required tags. You can specify '*' in value to
	// require non empty value of tag
	Tags map[string]string `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *Mesh_DataplaneProxyConstraints_Rules) Reset() {
	*x = Mesh_DataplaneProxyConstraints_Rules{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Mesh_DataplaneProxyConstraints_Rules) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Mesh_DataplaneProxyConstraints_Rules) ProtoMessage() {}

func (x *Mesh_DataplaneProxyConstraints_Rules) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Mesh_DataplaneProxyConstraints_Rules.ProtoReflect.Descriptor instead.
func (*Mesh_DataplaneProxyConstraints_Rules) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{0, 2, 0}
}

func (x *Mesh_DataplaneProxyConstraints_Rules) GetTags() map[string]string {
	if x != nil {
		return x.Tags
	}
	return nil
}

// DpCert defines settings for certificates generated for Dataplanes
type CertificateAuthorityBackend_DpCert struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Rotation settings
	Rotation *CertificateAuthorityBackend_DpCert_Rotation `protobuf:"bytes,1,opt,name=rotation,proto3" json:"rotation,omitempty"`
	// Timeout on request to CA for DP certificate generation and retrieval
	RequestTimeout *durationpb.Duration `protobuf:"bytes,2,opt,name=requestTimeout,proto3" json:"requestTimeout,omitempty"`
}

func (x *CertificateAuthorityBackend_DpCert) Reset() {
	*x = CertificateAuthorityBackend_DpCert{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CertificateAuthorityBackend_DpCert) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CertificateAuthorityBackend_DpCert) ProtoMessage() {}

func (x *CertificateAuthorityBackend_DpCert) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CertificateAuthorityBackend_DpCert.ProtoReflect.Descriptor instead.
func (*CertificateAuthorityBackend_DpCert) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{1, 0}
}

func (x *CertificateAuthorityBackend_DpCert) GetRotation() *CertificateAuthorityBackend_DpCert_Rotation {
	if x != nil {
		return x.Rotation
	}
	return nil
}

func (x *CertificateAuthorityBackend_DpCert) GetRequestTimeout() *durationpb.Duration {
	if x != nil {
		return x.RequestTimeout
	}
	return nil
}

// RootChain defines settings related to CA root certificate chain.
type CertificateAuthorityBackend_RootChain struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Timeout on request for to CA for root certificate chain.
	// If not specified, defaults to 10s.
	RequestTimeout *durationpb.Duration `protobuf:"bytes,1,opt,name=requestTimeout,proto3" json:"requestTimeout,omitempty"`
}

func (x *CertificateAuthorityBackend_RootChain) Reset() {
	*x = CertificateAuthorityBackend_RootChain{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CertificateAuthorityBackend_RootChain) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CertificateAuthorityBackend_RootChain) ProtoMessage() {}

func (x *CertificateAuthorityBackend_RootChain) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CertificateAuthorityBackend_RootChain.ProtoReflect.Descriptor instead.
func (*CertificateAuthorityBackend_RootChain) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{1, 1}
}

func (x *CertificateAuthorityBackend_RootChain) GetRequestTimeout() *durationpb.Duration {
	if x != nil {
		return x.RequestTimeout
	}
	return nil
}

// Rotation defines rotation settings for Dataplane certificate
type CertificateAuthorityBackend_DpCert_Rotation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Time after which generated certificate for Dataplane will expire
	Expiration string `protobuf:"bytes,1,opt,name=expiration,proto3" json:"expiration,omitempty"`
}

func (x *CertificateAuthorityBackend_DpCert_Rotation) Reset() {
	*x = CertificateAuthorityBackend_DpCert_Rotation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CertificateAuthorityBackend_DpCert_Rotation) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CertificateAuthorityBackend_DpCert_Rotation) ProtoMessage() {}

func (x *CertificateAuthorityBackend_DpCert_Rotation) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CertificateAuthorityBackend_DpCert_Rotation.ProtoReflect.Descriptor instead.
func (*CertificateAuthorityBackend_DpCert_Rotation) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{1, 0, 0}
}

func (x *CertificateAuthorityBackend_DpCert_Rotation) GetExpiration() string {
	if x != nil {
		return x.Expiration
	}
	return ""
}

// Outbound describes the common mesh outbound settings
type Networking_Outbound struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Control the passthrough cluster
	Passthrough *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=passthrough,proto3" json:"passthrough,omitempty"`
}

func (x *Networking_Outbound) Reset() {
	*x = Networking_Outbound{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Networking_Outbound) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Networking_Outbound) ProtoMessage() {}

func (x *Networking_Outbound) ProtoReflect() protoreflect.Message {
	mi := &file_api_mesh_v1alpha1_mesh_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Networking_Outbound.ProtoReflect.Descriptor instead.
func (*Networking_Outbound) Descriptor() ([]byte, []int) {
	return file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP(), []int{2, 0}
}

func (x *Networking_Outbound) GetPassthrough() *wrapperspb.BoolValue {
	if x != nil {
		return x.Passthrough
	}
	return nil
}

var File_api_mesh_v1alpha1_mesh_proto protoreflect.FileDescriptor

var file_api_mesh_v1alpha1_mesh_proto_rawDesc = []byte{
	0x0a, 0x1c, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70,
	0x68, 0x61, 0x31, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12,
	0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
	0x61, 0x31, 0x1a, 0x16, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x6f, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x61, 0x70, 0x69, 0x2f,
	0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x6d, 0x65,
	0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61,
	0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72,
	0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x6b, 0x75, 0x6d, 0x61, 0x2d,
	0x64, 0x6f, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x22, 0xdb, 0x09, 0x0a, 0x04, 0x4d, 0x65, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x04, 0x6d, 0x74, 0x6c,
	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d,
	0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73,
	0x68, 0x2e, 0x4d, 0x74, 0x6c, 0x73, 0x52, 0x04, 0x6d, 0x74, 0x6c, 0x73, 0x12, 0x35, 0x0a, 0x07,
	0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
	0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
	0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63,
	0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68,
	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e,
	0x67, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x07, 0x6d, 0x65,
	0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6b, 0x75,
	0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
	0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73,
	0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f,
	0x72, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e,
	0x67, 0x12, 0x35, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76,
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x52,
	0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x46, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73,
	0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e,
	0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
	0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69,
	0x6e, 0x74, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73,
	0x12, 0x40, 0x0a, 0x1b, 0x73, 0x6b, 0x69, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67,
	0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18,
	0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1b, 0x73, 0x6b, 0x69, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74,
	0x69, 0x6e, 0x67, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69,
	0x65, 0x73, 0x1a, 0xaf, 0x01, 0x0a, 0x04, 0x4d, 0x74, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x0e, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x04, 0x88, 0xb5, 0x18, 0x01, 0x52, 0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x51, 0x0a, 0x08, 0x62, 0x61, 0x63,
	0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6b, 0x75,
	0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68,
	0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x42, 0x04, 0x88, 0xb5,
	0x18, 0x01, 0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0e,
	0x73, 0x6b, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x6b, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6f, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69,
	0x6e, 0x74, 0x73, 0x12, 0x60, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65,
	0x50, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6b, 0x75,
	0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x4d, 0x65, 0x73, 0x68, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x50,
	0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x42,
	0x04, 0x88, 0xb5, 0x18, 0x01, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65,
	0x50, 0x72, 0x6f, 0x78, 0x79, 0x1a, 0xf8, 0x02, 0x0a, 0x19, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c,
	0x61, 0x6e, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69,
	0x6e, 0x74, 0x73, 0x12, 0x5c, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65,
	0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6b, 0x75, 0x6d, 0x61,
	0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d,
	0x65, 0x73, 0x68, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x50, 0x72, 0x6f,
	0x78, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x52, 0x75,
	0x6c, 0x65, 0x73, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
	0x73, 0x12, 0x5c, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d,
	0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73,
	0x68, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79,
	0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x52, 0x75, 0x6c, 0x65,
	0x73, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a,
	0x9e, 0x01, 0x0a, 0x05, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x04, 0x74, 0x61, 0x67,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d,
	0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x73,
	0x68, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79,
	0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x2e, 0x52, 0x75, 0x6c, 0x65,
	0x73, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x04, 0x88, 0xb5, 0x18,
	0x01, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x3a, 0x5c, 0xaa, 0x8c, 0x89, 0xa6, 0x01, 0x0e, 0x0a, 0x0c, 0x4d, 0x65, 0x73, 0x68, 0x52, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0xaa, 0x8c, 0x89, 0xa6, 0x01, 0x06, 0x12, 0x04, 0x4d, 0x65,
	0x73, 0x68, 0xaa, 0x8c, 0x89, 0xa6, 0x01, 0x02, 0x18, 0x01, 0xaa, 0x8c, 0x89, 0xa6, 0x01, 0x06,
	0x22, 0x04, 0x6d, 0x65, 0x73, 0x68, 0xaa, 0x8c, 0x89, 0xa6, 0x01, 0x04, 0x52, 0x02, 0x10, 0x01,
	0xaa, 0x8c, 0x89, 0xa6, 0x01, 0x08, 0x3a, 0x06, 0x0a, 0x04, 0x6d, 0x65, 0x73, 0x68, 0xaa, 0x8c,
	0x89, 0xa6, 0x01, 0x0a, 0x3a, 0x08, 0x12, 0x06, 0x6d, 0x65, 0x73, 0x68, 0x65, 0x73, 0x22, 0xbc,
	0x05, 0x0a, 0x1b, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75,
	0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x18,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0x88, 0xb5,
	0x18, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0x88, 0xb5, 0x18, 0x01, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x64, 0x70, 0x43, 0x65, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76,
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
	0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, 0x6b,
	0x65, 0x6e, 0x64, 0x2e, 0x44, 0x70, 0x43, 0x65, 0x72, 0x74, 0x52, 0x06, 0x64, 0x70, 0x43, 0x65,
	0x72, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x12,
	0x48, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e,
	0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
	0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75,
	0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x4d,
	0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x57, 0x0a, 0x09, 0x72, 0x6f, 0x6f,
	0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6b,
	0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74,
	0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x52, 0x6f,
	0x6f, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x43, 0x68, 0x61,
	0x69, 0x6e, 0x1a, 0xd4, 0x01, 0x0a, 0x06, 0x44, 0x70, 0x43, 0x65, 0x72, 0x74, 0x12, 0x5b, 0x0a,
	0x08, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x3f, 0x2e, 0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c,
	0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
	0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64,
	0x2e, 0x44, 0x70, 0x43, 0x65, 0x72, 0x74, 0x2e, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x08, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x2a, 0x0a,
	0x08, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70,
	0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65,
	0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4e, 0x0a, 0x09, 0x52, 0x6f, 0x6f,
	0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x41, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x22, 0x0a, 0x04, 0x4d, 0x6f, 0x64,
	0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, 0x10, 0x00, 0x12, 0x0e, 0x0a,
	0x0a, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x01, 0x22, 0x9b, 0x01,
	0x0a, 0x0a, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a, 0x08,
	0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27,
	0x2e, 0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
	0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x4f,
	0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e,
	0x64, 0x1a, 0x48, 0x0a, 0x08, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3c, 0x0a,
	0x0b, 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b,
	0x70, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x22, 0x7d, 0x0a, 0x07, 0x54,
	0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
	0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04,
	0x88, 0xb5, 0x18, 0x01, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x61, 0x63,
	0x6b, 0x65, 0x6e, 0x64, 0x12, 0x44, 0x0a, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65,
	0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x63,
	0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x42, 0x04, 0x88, 0xb5, 0x18, 0x01,
	0x52, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x0e, 0x54,
	0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x18, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0x88, 0xb5, 0x18,
	0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x73, 0x61, 0x6d, 0x70, 0x6c,
	0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62,
	0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e,
	0x67, 0x12, 0x18, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x04, 0x88, 0xb5, 0x18, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x63,
	0x6f, 0x6e, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x42, 0x04, 0x88, 0xb5, 0x18, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x22, 0x7b,
	0x0a, 0x1b, 0x44, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67,
	0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x0a,
	0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04,
	0x88, 0xb5, 0x18, 0x01, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a,
	0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x04, 0x88, 0xb5, 0x18,
	0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x70, 0x6c, 0x69, 0x74,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73,
	0x70, 0x6c, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x1a,
	0x5a, 0x69, 0x70, 0x6b, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63,
	0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x03, 0x75, 0x72,
	0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0x88, 0xb5, 0x18, 0x01, 0x52, 0x03, 0x75,
	0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x31, 0x32, 0x38,
	0x62, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x65,
	0x49, 0x64, 0x31, 0x32, 0x38, 0x62, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0a, 0x61, 0x70, 0x69, 0x56,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0x88, 0xb5,
	0x18, 0x01, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x48,
	0x0a, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x70, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x74,
	0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x70, 0x61,
	0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x7d, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x67,
	0x69, 0x6e, 0x67, 0x12, 0x2c, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x61,
	0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0x88, 0xb5, 0x18,
	0x01, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e,
	0x64, 0x12, 0x44, 0x0a, 0x08, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6b, 0x75, 0x6d, 0x61, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x2e,
	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67,
	0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x42, 0x04, 0x88, 0xb5, 0x18, 0x01, 0x52, 0x08, 0x62,
	0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x67,
	0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0x88, 0xb5, 0x18, 0x01, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x04,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0x88, 0xb5, 0x18, 0x01,
	0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x04, 0x88,
	0xb5, 0x18, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x66, 0x22, 0x34, 0x0a, 0x18, 0x46, 0x69, 0x6c,
	0x65, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x42, 0x04, 0x88, 0xb5, 0x18, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22,
	0x39, 0x0a, 0x17, 0x54, 0x63, 0x70, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x63,
	0x6b, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x0a, 0x07, 0x61, 0x64,
	0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0x88, 0xb5, 0x18,
	0x01, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x69, 0x0a, 0x07, 0x52, 0x6f,
	0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x1a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74,
	0x79, 0x41, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63,
	0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
	0x69, 0x74, 0x79, 0x41, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x42, 0x61, 0x6c, 0x61,
	0x6e, 0x63, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x7a, 0x6f, 0x6e, 0x65, 0x45, 0x67, 0x72,
	0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x7a, 0x6f, 0x6e, 0x65, 0x45,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x3e, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
	0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75, 0x6d, 0x61, 0x68, 0x71, 0x2f, 0x6b, 0x75, 0x6d, 0x61, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x8a, 0xb5, 0x18, 0x10, 0x50, 0x63, 0xa2, 0x01, 0x04, 0x4d, 0x65, 0x73, 0x68, 0xf2, 0x01,
	0x04, 0x6d, 0x65, 0x73, 0x68, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_api_mesh_v1alpha1_mesh_proto_rawDescOnce sync.Once
	file_api_mesh_v1alpha1_mesh_proto_rawDescData = file_api_mesh_v1alpha1_mesh_proto_rawDesc
)

func file_api_mesh_v1alpha1_mesh_proto_rawDescGZIP() []byte {
	file_api_mesh_v1alpha1_mesh_proto_rawDescOnce.Do(func() {
		file_api_mesh_v1alpha1_mesh_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_mesh_v1alpha1_mesh_proto_rawDescData)
	})
	return file_api_mesh_v1alpha1_mesh_proto_rawDescData
}

var file_api_mesh_v1alpha1_mesh_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_api_mesh_v1alpha1_mesh_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
var file_api_mesh_v1alpha1_mesh_proto_goTypes = []interface{}{
	(CertificateAuthorityBackend_Mode)(0),        // 0: kuma.mesh.v1alpha1.CertificateAuthorityBackend.Mode
	(*Mesh)(nil),                                 // 1: kuma.mesh.v1alpha1.Mesh
	(*CertificateAuthorityBackend)(nil),          // 2: kuma.mesh.v1alpha1.CertificateAuthorityBackend
	(*Networking)(nil),                           // 3: kuma.mesh.v1alpha1.Networking
	(*Tracing)(nil),                              // 4: kuma.mesh.v1alpha1.Tracing
	(*TracingBackend)(nil),                       // 5: kuma.mesh.v1alpha1.TracingBackend
	(*DatadogTracingBackendConfig)(nil),          // 6: kuma.mesh.v1alpha1.DatadogTracingBackendConfig
	(*ZipkinTracingBackendConfig)(nil),           // 7: kuma.mesh.v1alpha1.ZipkinTracingBackendConfig
	(*Logging)(nil),                              // 8: kuma.mesh.v1alpha1.Logging
	(*LoggingBackend)(nil),                       // 9: kuma.mesh.v1alpha1.LoggingBackend
	(*FileLoggingBackendConfig)(nil),             // 10: kuma.mesh.v1alpha1.FileLoggingBackendConfig
	(*TcpLoggingBackendConfig)(nil),              // 11: kuma.mesh.v1alpha1.TcpLoggingBackendConfig
	(*Routing)(nil),                              // 12: kuma.mesh.v1alpha1.Routing
	(*Mesh_Mtls)(nil),                            // 13: kuma.mesh.v1alpha1.Mesh.Mtls
	(*Mesh_Constraints)(nil),                     // 14: kuma.mesh.v1alpha1.Mesh.Constraints
	(*Mesh_DataplaneProxyConstraints)(nil),       // 15: kuma.mesh.v1alpha1.Mesh.DataplaneProxyConstraints
	(*Mesh_DataplaneProxyConstraints_Rules)(nil), // 16: kuma.mesh.v1alpha1.Mesh.DataplaneProxyConstraints.Rules
	nil, // 17: kuma.mesh.v1alpha1.Mesh.DataplaneProxyConstraints.Rules.TagsEntry
	(*CertificateAuthorityBackend_DpCert)(nil),          // 18: kuma.mesh.v1alpha1.CertificateAuthorityBackend.DpCert
	(*CertificateAuthorityBackend_RootChain)(nil),       // 19: kuma.mesh.v1alpha1.CertificateAuthorityBackend.RootChain
	(*CertificateAuthorityBackend_DpCert_Rotation)(nil), // 20: kuma.mesh.v1alpha1.CertificateAuthorityBackend.DpCert.Rotation
	(*Networking_Outbound)(nil),                         // 21: kuma.mesh.v1alpha1.Networking.Outbound
	(*Metrics)(nil),                                     // 22: kuma.mesh.v1alpha1.Metrics
	(*structpb.Struct)(nil),                             // 23: google.protobuf.Struct
	(*wrapperspb.DoubleValue)(nil),                      // 24: google.protobuf.DoubleValue
	(*wrapperspb.BoolValue)(nil),                        // 25: google.protobuf.BoolValue
	(*durationpb.Duration)(nil),                         // 26: google.protobuf.Duration
}
var file_api_mesh_v1alpha1_mesh_proto_depIdxs = []int32{
	13, // 0: kuma.mesh.v1alpha1.Mesh.mtls:type_name -> kuma.mesh.v1alpha1.Mesh.Mtls
	4,  // 1: kuma.mesh.v1alpha1.Mesh.tracing:type_name -> kuma.mesh.v1alpha1.Tracing
	8,  // 2: kuma.mesh.v1alpha1.Mesh.logging:type_name -> kuma.mesh.v1alpha1.Logging
	22, // 3: kuma.mesh.v1alpha1.Mesh.metrics:type_name -> kuma.mesh.v1alpha1.Metrics
	3,  // 4: kuma.mesh.v1alpha1.Mesh.networking:type_name -> kuma.mesh.v1alpha1.Networking
	12, // 5: kuma.mesh.v1alpha1.Mesh.routing:type_name -> kuma.mesh.v1alpha1.Routing
	14, // 6: kuma.mesh.v1alpha1.Mesh.constraints:type_name -> kuma.mesh.v1alpha1.Mesh.Constraints
	18, // 7: kuma.mesh.v1alpha1.CertificateAuthorityBackend.dpCert:type_name -> kuma.mesh.v1alpha1.CertificateAuthorityBackend.DpCert
	23, // 8: kuma.mesh.v1alpha1.CertificateAuthorityBackend.conf:type_name -> google.protobuf.Struct
	0,  // 9: kuma.mesh.v1alpha1.CertificateAuthorityBackend.mode:type_name -> kuma.mesh.v1alpha1.CertificateAuthorityBackend.Mode
	19, // 10: kuma.mesh.v1alpha1.CertificateAuthorityBackend.rootChain:type_name -> kuma.mesh.v1alpha1.CertificateAuthorityBackend.RootChain
	21, // 11: kuma.mesh.v1alpha1.Networking.outbound:type_name -> kuma.mesh.v1alpha1.Networking.Outbound
	5,  // 12: kuma.mesh.v1alpha1.Tracing.backends:type_name -> kuma.mesh.v1alpha1.TracingBackend
	24, // 13: kuma.mesh.v1alpha1.TracingBackend.sampling:type_name -> google.protobuf.DoubleValue
	23, // 14: kuma.mesh.v1alpha1.TracingBackend.conf:type_name -> google.protobuf.Struct
	25, // 15: kuma.mesh.v1alpha1.ZipkinTracingBackendConfig.sharedSpanContext:type_name -> google.protobuf.BoolValue
	9,  // 16: kuma.mesh.v1alpha1.Logging.backends:type_name -> kuma.mesh.v1alpha1.LoggingBackend
	23, // 17: kuma.mesh.v1alpha1.LoggingBackend.conf:type_name -> google.protobuf.Struct
	2,  // 18: kuma.mesh.v1alpha1.Mesh.Mtls.backends:type_name -> kuma.mesh.v1alpha1.CertificateAuthorityBackend
	15, // 19: kuma.mesh.v1alpha1.Mesh.Constraints.dataplaneProxy:type_name -> kuma.mesh.v1alpha1.Mesh.DataplaneProxyConstraints
	16, // 20: kuma.mesh.v1alpha1.Mesh.DataplaneProxyConstraints.requirements:type_name -> kuma.mesh.v1alpha1.Mesh.DataplaneProxyConstraints.Rules
	16, // 21: kuma.mesh.v1alpha1.Mesh.DataplaneProxyConstraints.restrictions:type_name -> kuma.mesh.v1alpha1.Mesh.DataplaneProxyConstraints.Rules
	17, // 22: kuma.mesh.v1alpha1.Mesh.DataplaneProxyConstraints.Rules.tags:type_name -> kuma.mesh.v1alpha1.Mesh.DataplaneProxyConstraints.Rules.TagsEntry
	20, // 23: kuma.mesh.v1alpha1.CertificateAuthorityBackend.DpCert.rotation:type_name -> kuma.mesh.v1alpha1.CertificateAuthorityBackend.DpCert.Rotation
	26, // 24: kuma.mesh.v1alpha1.CertificateAuthorityBackend.DpCert.requestTimeout:type_name -> google.protobuf.Duration
	26, // 25: kuma.mesh.v1alpha1.CertificateAuthorityBackend.RootChain.requestTimeout:type_name -> google.protobuf.Duration
	25, // 26: kuma.mesh.v1alpha1.Networking.Outbound.passthrough:type_name -> google.protobuf.BoolValue
	27, // [27:27] is the sub-list for method output_type
	27, // [27:27] is the sub-list for method input_type
	27, // [27:27] is the sub-list for extension type_name
	27, // [27:27] is the sub-list for extension extendee
	0,  // [0:27] is the sub-list for field type_name
}

func init() { file_api_mesh_v1alpha1_mesh_proto_init() }
func file_api_mesh_v1alpha1_mesh_proto_init() {
	if File_api_mesh_v1alpha1_mesh_proto != nil {
		return
	}
	file_api_mesh_v1alpha1_metrics_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Mesh); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CertificateAuthorityBackend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Networking); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Tracing); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TracingBackend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DatadogTracingBackendConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ZipkinTracingBackendConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Logging); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LoggingBackend); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FileLoggingBackendConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TcpLoggingBackendConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Routing); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Mesh_Mtls); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Mesh_Constraints); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Mesh_DataplaneProxyConstraints); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Mesh_DataplaneProxyConstraints_Rules); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CertificateAuthorityBackend_DpCert); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CertificateAuthorityBackend_RootChain); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CertificateAuthorityBackend_DpCert_Rotation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_mesh_v1alpha1_mesh_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Networking_Outbound); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_api_mesh_v1alpha1_mesh_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   21,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_api_mesh_v1alpha1_mesh_proto_goTypes,
		DependencyIndexes: file_api_mesh_v1alpha1_mesh_proto_depIdxs,
		EnumInfos:         file_api_mesh_v1alpha1_mesh_proto_enumTypes,
		MessageInfos:      file_api_mesh_v1alpha1_mesh_proto_msgTypes,
	}.Build()
	File_api_mesh_v1alpha1_mesh_proto = out.File
	file_api_mesh_v1alpha1_mesh_proto_rawDesc = nil
	file_api_mesh_v1alpha1_mesh_proto_goTypes = nil
	file_api_mesh_v1alpha1_mesh_proto_depIdxs = nil
}
